package proyecto.DataAccessObject;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import proyecto.EntityBeans.Horario;

@Stateless
@Remote(HorarioDAORemote.class)
public class HorarioDAO implements HorarioDAORemote {

	@PersistenceContext
	EntityManager entityManager;


	public int save (Horario horario){		
		try{			
			entityManager.persist(horario);			
		} 
		catch(Exception e){
			e.printStackTrace();
		}	
		
		return horario.getIdHorario();
	}
	

	public Horario findById(int id) {
		return entityManager.find(Horario.class, id);
		
	}
	
		
	public void merge(Horario horario) {
		try{						
			entityManager.merge(horario);
		} 
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	
	public List findAll() {		
		return entityManager.createQuery("from Horario").getResultList();
	}
	
	public List findByIdList(int id)
	{	     
	      return entityManager.createQuery("select h from Horario h where h.idHorario = :idHorario").setParameter("idHorario", id).getResultList();
	}
	
	
	public List findByIdGrupo(int idGrupo)
	{	     
	      return entityManager.createQuery("select h from Horario h where h.grupo.idGrupo = :idGrupo").setParameter("idGrupo", idGrupo).getResultList();
	}
	
		
	public void remove(int idHorario){	
		entityManager.remove(entityManager.find(Horario.class, idHorario));
	}
	
		

	public void refresh(Horario horario){
		entityManager.refresh(horario);
	}
}
